package com.itcast.demoone.fragment

import android.annotation.SuppressLint
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.TextView
import com.itcast.demoone.R


class DetailFragment : Fragment() {
    /**
     * 伴生对象
     * 作用：相当于 Java 中的静态成员
     * 特点:
     *  在类加载时初始化
     *  所有实例共享同一份伴生对象
     *  可以直接通过类名访问：DetailFragment.newInstance(123)
     */
    companion object {
        // 定义参数键名，用于传递新闻条目ID
        private const val ARG_ITEM_ID = "item_id"

        // 创建新实例的工厂方法
        fun newInstance(itemId: Int): DetailFragment {
            val args = Bundle().apply {
                // 将新闻条目ID放入参数Bundle中
                putInt(ARG_ITEM_ID, itemId)
            }
            return DetailFragment().apply {
                // 设置参数到Fragment实例
                arguments = args
            }
        }
    }

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.fragment_detail, container, false)
    }

    @SuppressLint("SetTextI18n")
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        val itemId = arguments?.getInt(ARG_ITEM_ID) ?: 0


        // 找到标题TextView并设置显示内容
        view.findViewById<TextView>(R.id.title).text = "新闻标题 $itemId"
        // 找到内容TextView并设置显示详情内容
        view.findViewById<TextView>(R.id.content).text = "这是新闻 $itemId 的详细内容..."

        // 找到返回按钮并设置点击事件监听器
        view.findViewById<Button>(R.id.bk_button).setOnClickListener {
            // 点击返回按钮时弹出Fragment回退栈，实现返回列表功能
            parentFragmentManager.popBackStack()
        }

    }
}